Dashboard Temp Share Shortlinks Frames API

HTMLify

Stream First Non-repeating.py
Views: 29 | Author: prakhardoneria
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
from collections import deque

class Solution:
    def firstNonRepeating(self, s):
        char_count = [0] * 26
        queue = deque()
        result = []
        
        for char in s:
            char_count[ord(char) - ord('a')] += 1
            queue.append(char)
            
            while queue and char_count[ord(queue[0]) - ord('a')] > 1:
                queue.popleft()
            
            if not queue:
                result.append('#')
            else:
                result.append(queue[0])
        
        return "".join(result)